/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ucab.desarrollo.viajesbook.api;

import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Iterator;
import java.util.Set;
import org.jdom.*;
import org.jdom.input.*;
import ucab.desarrollo.viajesbook.beans.*;
import ucab.desarrollo.viajesbook.beans.Viaje;

/**
 *
 * @author Magaly Romero
 */
public class LecturaXML {

    private static Viaje viaje = new Viaje();
    private Date prueba = null;

    public static Viaje LecturaXML(String Url) {
        try {
            SAXBuilder builder = new SAXBuilder(false);
            ServiceXML servicioXml = new ServiceXML();
            Document document = builder.build(servicioXml.getXml(Url));
//            //Document document = builder.build(servicioXml.getXml("http://192.168.23.99/MvcApplication1/Api/Viaje/formato.xml?idViaje=1"));
//            //System.out.println(servicioXml.convertStreamToString(servicioXml.getXml("http://192.168.23.99/MvcApplication1/Api/Viaje/formato.xml?idViaje=1")));
            Element raiz = document.getRootElement();
            List viajeList = raiz.getChildren("ViajeXml");
            Iterator iteViajeXml = viajeList.iterator();
            Element element = (Element) iteViajeXml.next();
            Lugar lugar = new Lugar();
            int tipoViaje;
            String tipo;
            //Date fechaini;
            //Date fechafin;
            lugar.setLugarNombre(element.getChildText("Destino"));
            viaje.setLugar(lugar);
            //viaje.setViajeFechaFin((element.getChild("FechaFin"));
            //viaje.setViajeFechaInicio(element.getChild("FechaInicio"));
            viaje.setViajealojamiento(element.getChildText("Hospedaje"));
            viaje.setIdviaje(Integer.parseInt(element.getChildText("IdViaje")));
            tipo = element.getChildText("Privacidad");

            if (tipo.equals("Privado")) {
                tipoViaje = 1;
            } else {
                tipoViaje = 0;
            }
            viaje.setViajeppublico(tipoViaje);

            List destinos = element.getChildren("Destinos");
            Iterator iteDestinos = destinos.iterator();
            Set listaItinerario = new HashSet(0);
            while (iteDestinos.hasNext()) {
                Element elementDestino = (Element) iteDestinos.next();
                List dest = elementDestino.getChildren("DestinoXml");
                Iterator iteDestinosXml = dest.iterator();
                while (iteDestinosXml.hasNext()) {
                    Element elementDestinoXml = (Element) iteDestinosXml.next();
                    Itinerario itinerario = new Itinerario();
                    itinerario.setItinerariodescripcion(elementDestinoXml.getChildText("Descripcion"));
                    //itinerario.setItinerarioFecha(elementDestinoXml.getChildText("Fecha"));
                    //itinerario.setId(Integer.parseInt(elementDestinoXml.getChildText("IdDestino")));
                    itinerario.setItinerariofoto(elementDestinoXml.getChildText("UrlFoto"));
                    listaItinerario.add(itinerario);
                }
            }
            viaje.setItinerarios(listaItinerario);
        } catch (Exception e) {
            System.out.print(e.getMessage());
        }
        return (viaje);
    }
//    public static void main(String[] args) {
//        LecturaXML();
//    }
//    public Vector getXml()
//    {
//        return this.campaigs;
//    }
}
